package com.work.dto.main;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * 多垛理货app提交
 *
 * @author ：dujianyu
 * @since ：Created in 2024/4/2 9:29
 */
@Data
public class TwoStockTallyAppSubmitDTO {

    /** ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "ID",notes = "")
    private Long id ;

    /** 理货日期 */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
    @JsonFormat(pattern = DateUtil.PATTERN_DATE)
    @ApiModelProperty(name = "理货日期",notes = "")
    private LocalDate tallyDate ;

    /** 时间段（班次） */
    @ApiModelProperty(name = "时间段（班次）",notes = "")
    private String timeSpace ;

    /** 理货类型 */
    @ApiModelProperty(name = "理货类型",notes = "")
    private String tallyType ;

    /** 航陆运 */
    @ApiModelProperty(name = "航陆运",notes = "")
    private String shipLand ;

    /** 作业过程 */
    @ApiModelProperty(name = "作业过程",notes = "")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long operationType ;

    /** 作业活动 */
    @ApiModelProperty(name = "作业活动",notes = "")
    private String workActivity ;

    /** 作业活动名称 */
    @ApiModelProperty(name = "作业活动名称",notes = "")
    private String workActivityName ;

    /** 来源货运船ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源货运船ID",notes = "")
    private Long oriTransportShipId ;

    /** 来源货运舱单ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源货运舱单ID",notes = "")
    private Long oriTransportBillId ;

    /** 来源理货舱单ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源理货舱单ID",notes = "")
    private Long oriTBillId ;

    /** 场存区域id */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "场存区域id",notes = "")
    private Long oriStorageAreaId ;

    /** 场存区域名称 */
    @ApiModelProperty(name = "场存区域名称",notes = "")
    private String oriStorageAreaName ;

    /** 场存货位id */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "场存货位id",notes = "")
    private Long oriStoragePositionId ;

    /** 场存货位名称 */
    @ApiModelProperty(name = "场存货位名称",notes = "")
    private String oriStoragePositionName ;

    /** 场存具体位置 */
    @ApiModelProperty(name = "场存具体位置",notes = "")
    private String oriSpot ;

    /** 来源被影响场存ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源被影响场存ID",notes = "")
    private Long oriStorageId ;

    /** 来源理货包装（场存垛包装） */
    @ApiModelProperty(name = "来源理货包装（场存垛包装）",notes = "")
    private String oriPackageType ;

    /** 来源理货件数 */
    @ApiModelProperty(name = "来源理货件数",notes = "")
    private Integer oriPiece ;

    /** 来源理货吨数 */
    @ApiModelProperty(name = "来源理货吨数",notes = "")
    private BigDecimal oriTon ;

    /** 去向货运船ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向货运船ID",notes = "")
    private Long toTransportShipId ;

    /** 去向货运舱单ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向货运舱单ID",notes = "")
    private Long toTransportBillId ;

    /** 去向理货舱单ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向理货舱单ID",notes = "")
    private Long toTBillId ;

    /** 场存区域id */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "场存区域id",notes = "")
    private Long toStorageAreaId ;

    /** 场存区域名称 */
    @ApiModelProperty(name = "场存区域名称",notes = "")
    private String toStorageAreaName ;

    /** 场存货位id */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "场存货位id",notes = "")
    private Long toStoragePositionId ;

    /** 场存货位名称 */
    @ApiModelProperty(name = "场存货位名称",notes = "")
    private String toStoragePositionName ;

    /** 场存具体位置 */
    @ApiModelProperty(name = "场存具体位置",notes = "")
    private String toSpot ;

    /** 去向被影响场存ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向被影响场存ID",notes = "")
    private Long toStorageId ;

    /** 去向理货包装 */
    @ApiModelProperty(name = "去向理货包装",notes = "")
    private String toPackageType ;

    /** 去向理货件数 */
    @ApiModelProperty(name = "去向理货件数",notes = "")
    private Integer toPiece ;

    /** 去向理货吨数 */
    @ApiModelProperty(name = "去向理货吨数",notes = "")
    private BigDecimal toTon ;

    /** 是否检算完成 */
    @ApiModelProperty(name = "是否检算完成",notes = "")
    private String isCheck ;

    /** 检算状态 */
    @ApiModelProperty(name = "检算状态",notes = "")
    private String checkType ;

    /** 检算原因 */
    @ApiModelProperty(name = "检算原因",notes = "")
    private String checkReason ;

    /** 检算来源件数 */
    @ApiModelProperty(name = "检算来源件数",notes = "")
    private Integer checkOriPiece ;

    /** 检算来源吨数 */
    @ApiModelProperty(name = "检算来源吨数",notes = "")
    private BigDecimal checkOriTon ;

    /** 检算去向件数 */
    @ApiModelProperty(name = "检算去向件数",notes = "")
    private Integer checkToPiece ;

    /** 检算去向吨数 */
    @ApiModelProperty(name = "检算去向吨数",notes = "")
    private BigDecimal checkToTon ;

    /** 检算人 */
    @ApiModelProperty(name = "检算人",notes = "")
    private Long checker ;

    /** 是否可编辑 */
    @ApiModelProperty(name = "是否可编辑",notes = "")
    private String isEdit ;

    /** 解锁人 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "解锁人",notes = "")
    private Long editChangeUser ;

    /** 解锁人姓名 */
    @ApiModelProperty(name = "解锁人姓名",notes = "")
    private String editChangeUserName ;

    /** 区域id */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "区域id",notes = "")
    private Long areaId ;

    /** 区域名称 */
    @ApiModelProperty(name = "区域名称",notes = "")
    private String areaName ;
    /** 保管员 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "保管员",notes = "")
    private Long keeper ;

    /** 保管员 */
    @ApiModelProperty(name = "保管员",notes = "")
    private String keeperName ;

    /** 苫盖 */
    @ApiModelProperty(name = "苫盖",notes = "")
    private String isCover ;

    /** 铺垫 */
    @ApiModelProperty(name = "铺垫",notes = "")
    private String isBedding ;

    /** 安全生产 */
    @ApiModelProperty(name = "安全生产",notes = "")
    private String isSafeProduction ;

    /** 备注 */
    @ApiModelProperty(name = "备注",notes = "")
    private String remark ;

    /** 备注 */
    @ApiModelProperty(name = "交班记录",notes = "")
    private String shipBillRemark ;

    /** 一级配工ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "一级配工ID",notes = "")
    private Long arrangeId ;

    /** 配工信息 */
    @ApiModelProperty(name = "配工信息",notes = "")
    private String arrangeInfo ;

    /** 货位 */
    @ApiModelProperty(name = "舱口",notes = "")
    private String hold ;

    /** 货位 */
    @ApiModelProperty(name = "舱口",notes = "")
    private String holdName ;

    /** 公司 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "公司",notes = "")
    private Long company ;

    /** 公司 */
    @ApiModelProperty(name = "公司",notes = "")
    private String companyName ;

    /** 队 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "队",notes = "")
    private Long team ;

    /** 队 */
    @ApiModelProperty(name = "队",notes = "")
    private String teamName ;

    /** 组 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "组",notes = "")
    private Long groups ;

    /** 组 */
    @ApiModelProperty(name = "组",notes = "")
    private String groupsName ;

    /** 队组全名 */
    @ApiModelProperty(name = "队组全名",notes = "")
    private String workerInfo ;

    /** 车数 */
    @ApiModelProperty(name = "车数",notes = "")
    private String cars ;

    /** 是否退关 */
    @ApiModelProperty(name = "是否退关",notes = "")
    private String isRetreat ;

    /** 原始货垛地图信息ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "原始货垛地图信息ID",notes = "")
    private Long oriGoodsPositionId ;

    /** 原始区域code */
    @ApiModelProperty(name = "原始区域code",notes = "")
    private String oriAreaCode ;

    /** 去向货垛地图信息ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向货垛地图信息ID",notes = "")
    private Long toGoodsPositionId ;

    /** 去向区域code */
    @ApiModelProperty(name = "去向区域code",notes = "")
    private String toAreaCode ;

    /** 作业机械 */
    @ApiModelProperty(name = "作业机械",notes = "")
    private List<TallyMachineSubmitDTO> machineList;

    /** 机械IDs */
    @ApiModelProperty(name = "机械IDs",notes = "")
    private String machineIds ;

    /** 机械种类IDs */
    @ApiModelProperty(name = "机械种类IDs",notes = "")
    private String machineKinds ;

    /** 机械队组IDs */
    @ApiModelProperty(name = "机械队组IDs",notes = "")
    private String machineTeamIds ;

    /** 机械信息 */
    @ApiModelProperty(name = "机械信息",notes = "")
    private String machineInfo ;
}
